angular.module('app').config(function($stateProvider) {

    $stateProvider.state('app.battery-status', {
        url         : '/battery-status',
        label       : '电池状态',
        controller  : 'app.battery-status',
        controllerAs: '$ctrl',
        templateUrl : 'view/app/battery-status/battery-status.html'
    });
}).controller('app.battery-status', function ($window) {
    var ctrl = this;
    ctrl.consoles = [];
    /**
     * status
     *  - level: 电池剩余电量百分比
     *  - isPlugged: 是否正在充电(连接电源)
     */
    // 当前电池状态(每进入 app 时会触发一次, 电量没改变 1% 也会出发一次)
    $window.addEventListener('batterystatus', function (status) {
        ctrl.consoles.unshift({
            name  : 'batterystatus',
            status: status
        });
    }, false);
    // 电池电量低
    $window.addEventListener('batterylow', function (status) {
        ctrl.consoles.unshift({
            name  : 'batterylow',
            status: status
        });
    }, false);
    // 电池电量极低
    $window.addEventListener('batterycritical', function (status) {
        ctrl.consoles.unshift({
            name  : 'batterycritical',
            status: status
        });
    }, false);
});